Contexte de l’étude

En Côte d’Ivoire, le citron est un produit agricole important, tant pour la consommation locale que pour l’exportation. Cependant, son prix varie considérablement selon les régions. Abidjan, en tant que principal centre économique, dispose d’un marché plus intégré aux réseaux d’import-export, tandis que Bouaké, ville stratégique du centre, pourrait être plus sensible aux fluctuations des cultures locales.

Ces différences structurelles soulèvent une interrogation centrale : les dynamiques de prix observées dans ces deux villes obéissent-elles aux mêmes logiques ? Et peut-on les modéliser efficacement pour mieux les anticiper ?

Cette étude vise à offrir une vision claire des dynamiques de prix du citron sur deux marchés emblématiques du pays (Abidjan et Bouaké). Elle s’attache à :

Approche méthodologique

Afin de mieux comprendre l’évolution des prix du citron à Abidjan et Bouaké, nous avons adopté une démarche structurée autour de deux grandes étapes :

Observation et analyse descriptive

Affichage graphique

Les graphiques ci-dessus ont été obtenus à partir des données reccueillies. On observe que, sur la période de 2020 à 2022, les prix du citron à Bouaké apparaissent globalement plus stables et plus élevés qu’à Abidjan au début du graphique, notamment en 2020 où Bouaké affiche des niveaux autour de 850 FCFA/kg contre 600 FCFA/kg à Abidjan. À partir de fin 2020, Abidjan connaît une forte instabilité avec des fluctuations prononcées, tandis que Bouaké subit une chute brutale des prix en 2021, oscillant ensuite entre 400 et 600 FCFA/kg. Un pic spectaculaire est enregistré à Abidjan fin 2021, atteignant environ 1300 FCFA/kg.

Saisonnalité des prix à Abidjan et Bouaké

Les graphiques de saisonnalité des prix du citron révèlent des comportements distincts selon les années, ils ne montrent pas de saisonnalité évidente. Il ne faut toutefois pas exclure qu’il pourrait y avoir des effets saisonniers masqués ou instables. Voyons cela avec des outils comme l’ACF et le PACF.

ACF et PACF

Au vu des graphiques, il n’y a à priori pas de saisonnalité.

Modélisation et prévision

Modèles de décomposition des séries temporelles

Pour mieux comprendre la structure interne des séries temporelles du prix du citron, nous procédons à leur décomposition. Cette démarche permet d’isoler trois composantes essentielles : la tendance (évolution à long terme), la saisonnalité (motifs périodiques) et les résidus (variations aléatoires). Nous appliquons successivement une décomposition additive, multiplicative, puis la méthode STL (Seasonal and Trend decomposition using Loess). Toutefois, vu qu’il n’y a pas assez d’observations dans les données pour détecter une saisonnalité fiable avec ces méthodes, nous ne nous attarderons pas sur la saisonnalité.

Décomposition additive et multiplicative

Le modèle de décomposition additive s’écrit : \[Y_t = T_t + S_t + \varepsilon_t\] où :

  • \(Y_t\) désigne l’observation d’une grandeur \(Y\) à l’instant (ou à la date) t
  • \(T_t\) représente la composante tendancielle
  • \(S_t\) représente la composante saisonnière
  • \(\varepsilon_t\) représente la composante résiduelle

Le modèle de décomposition multiplicative s’écrit : \[Y_t = T_t \times S_t \times \varepsilon_t\] où :

  • \(Y_t\) désigne l’observation d’une grandeur \(Y\) à l’instant (ou à la date) t
  • \(T_t\) représente la composante tendancielle
  • \(S_t\) représente la composante saisonnière
  • \(\varepsilon_t\) représente la composante résiduelle
Application aux données

Après application, on obtient les graphiques suivants :

## 
## Attachement du package : 'gridExtra'
## L'objet suivant est masqué depuis 'package:dplyr':
## 
##     combine

On observe des dynamiques contrastées entre les marchés du citron d’Abidjan et Bouaké. À Abidjan, on observe une forte volatilité avec une tendance marquée par un effondrement des prix en 2020 suivi d’un rebond vigoureux en 2021, et des résidus importants. À l’inverse, Bouaké présente une évolution plus stable avec une tendance culminant en 2021 et des résidus plus contenus.

Décomposition STL

La méthode STL (Seasonal-Trend decomposition using Loess) se distingue des décompositions additive et multiplicative par sa plus grande flexibilité. Contrairement à ces dernières, qui supposent une relation fixe entre tendance, saisonnalité et résidus, STL utilise un lissage local (Loess) pour extraire chaque composante de manière souple. Cela lui permet de mieux gérer les données irrégulières, les tendances non linéaires et les saisonnalités qui évoluent dans le temps.

La décomposition STL révèle des comportements contrastés entre Abidjan et Bouaké. À Abidjan, la série est marquée par une forte instabilité avec plusieurs oscillations de prix. En revanche, Bouaké, certes avec une tendance changeante, présente une structure plus stable, avec des résidus modérés.

Sélection de la meilleure décomposition

Pour choisir la méthode de décomposition la plus adaptée, un examen des résidus et le calcul de l’erreur RMSE (Root Mean Squared Error, ou racine de l’erreur quadratique moyenne) nous seront utiles.

  • Examen des résidus

Les graphiques des résidus sont représentés ci-dessous :

Sur le graphique, les résidus issus des méthodes additive et multiplicative sont fortement concentrés autour d’une valeur centrale avec peu de dispersion. En revanche, ceux de la méthode STL présentent une distribution plus étalée et symétrique autour de zéro.

  • Calcul des erreurs RMSE

L’écriture mathématique de l’erreur RMSE est : \[RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^n \left(y_i - \hat{y}_i \right)^2}\]

où :

  • \(n =\) nombre total d’observations
  • \(y_i =\) valeur observée
  • \(\hat{y}_i =\) valeur prédite par le modèle
  • \(y_i - \hat{y}_i =\) erreur de prédiction pour l’observation \(i\)

Après application les résultats sont présentés dans le tableau ci-dessous :

Les résultats montrent que, pour Abidjan comme pour Bouaké, le modèle multiplicatif affiche les plus faibles RMSE, traduisant un meilleur ajustement aux données que les modèles additif et STL.

Modèle ARIMA

Le modèle ARIMA est donné par :

\[\phi(L)(1 - L)^d X_t = \theta(L)\varepsilon_t\]

Avec :

  • \(\phi(L) = 1 - \phi_1 L - \cdots - \phi_p L^p\)
  • \(\theta(L) = 1 + \theta_1 L + \cdots + \theta_q L^q\)
  • \(\varepsilon_t\) : bruit blanc

Estimation des paramètres ARIMA \((p,d,q)\)

Estimation de \(d\)

  • Test de stationnarité
Test ADF (Augmented Dickey-Fuller)
  • Ce qu’il vérifie : Est-ce que la série change au fil du temps sans revenir à un niveau stable ?
  • Hypothèse de départ (\(H_0\)) : La série n’est pas stable.
  • Conclusion :
    • Si le test rejette \(H_0\), alors la série est probablement stable dans le temps
    • Si le test ne rejette pas \(H_0\), la série est instable (non stationnaire).

On espère rejeter \(H_0\) ici, car ça voudrait dire que la série est stationnaire.

Test KPSS (Kwiatkowski-Phillips-Schmidt-Shin)
  • Ce qu’il vérifie : Est-ce que la série est déjà stable autour d’un niveau fixe ?
  • Hypothèse de départ (\(H_0\)) : La série est stable.
  • Conclusion :
    • Si le test rejette \(H_0\), la série est probablement instable.
    • Si le test ne rejette pas \(H_0\), la série est stable.

Ici, on espère ne pas rejeter \(H_0\), ce serait une preuve que la série est stationnaire.

Les résultats des tests ont suggéré une stationnarité incertaine. Une différenciation a donc été appliquée aux séries. Les résultats des tests faits après la différenciation ont confirmé la stationnarité des séries.

Conclusion : Les deux séries différenciées sont stationnaires (prêtes pour ARIMA/SARIMA) avec \(D = d = 1\).

Estimation de \(p\) et \(q\)

  • ACF et PACF

Vu que nous n’avons pas de saisonnalité, nous allons faire un auto.arima qui va nous donner les valeurs de \(p\) et \(q\).

Pour l’applications, nous séparons les données en données d’apprentissage et de test.

La série d’Abidjan qui compte 110 semaines a été repartie comme suit :

  • 88 semaines (soit du 06/01/2020 au 04/04/2022) pour l’apprentissage
  • 22 semaines (soit du 11/04/2022 au 03/10/2022) pour le test

La série de Bouaké qui compte 108 semaines a été repartie comme suit :

  • 86 semaines (soit du 06/01/2020 au 16/05/2022) pour l’apprentissage
  • 22 semaines (soit du 23/05/2022 au 31/10/2022) pour le test

Modèle Auto ARIMA

  • Pour Abidjan
## Series: train_abi 
## ARIMA(1,1,0) 
## 
## Coefficients:
##           ar1
##       -0.3508
## s.e.   0.0995
## 
## sigma^2 = 7877:  log likelihood = -513.28
## AIC=1030.56   AICc=1030.7   BIC=1035.49
  • Pour Bouaké
## Series: train_bou 
## ARIMA(0,1,0) 
## 
## sigma^2 = 7691:  log likelihood = -500.89
## AIC=1003.79   AICc=1003.83   BIC=1006.23

On construit un modèle \(ARIMA(1,1,1)\) pour Abidjan et Bouaké et on le compare au modèle \(Auto ARIMA\) par le critère \(AIC\). Notons que l’\(AIC\) a pour formule mathématique : \[AIC = 2k - 2\ln(\hat{L})\]

où :

  • \(k =\) nombre de paramètres estimés du modèle
  • \(\hat{L} =\) valeur de la vraisemblance maximale du modèle

ARIMA simple

  • Pour Abidjan
## Series: train_bou 
## ARIMA(1,1,1) 
## 
## Coefficients:
##          ar1      ma1
##       0.7652  -0.9069
## s.e.  0.2044   0.1456
## 
## sigma^2 = 7494:  log likelihood = -498.9
## AIC=1003.8   AICc=1004.09   BIC=1011.12
  • Pour Bouaké
## Series: train_abi 
## ARIMA(1,1,1) 
## 
## Coefficients:
##           ar1     ma1
##       -0.6313  0.3340
## s.e.   0.3152  0.4019
## 
## sigma^2 = 7910:  log likelihood = -512.97
## AIC=1031.93   AICc=1032.22   BIC=1039.33

Le résultat des comparaisons est consigné dans le tableau suivant :

Pour les ajustements des modèles, nous remarquons que :

  • pour Abidjan, c’est le ARIMA simple qui l’emporte
  • pour Bouaké, c’est l’Auto ARIMA qui l’emporte

Modèle SARIMA

Même si la saisonnalité n’apparaît pas clairement dans les données, nous avons choisi de forcer un SARIMA afin d’intégrer une composante saisonnière hypothétique. Nous avons retenu une période s=4 au lieu de s=52 car l’estimation avec s=52 a généré une erreur numérique liée au manque de données pour couvrir un cycle complet annuel. Ce choix permet néanmoins de tester l’existence d’un effet périodique latent plus court et d’évaluer son impact sur les prévisions, tout en comparant la performance avec un modèle sans saisonnalité

Comme précédemment, nous comparons ce modèle \(SARIMA\) aux deux modèles précédents par le critère \(AIC\).

Les résultats sont contenus dans le tableau ci-dessous :

Encore une fois, pour les ajustements des modèles, nous remarquons que :

  • pour Abidjan, c’est toujours le ARIMA simple qui l’emporte
  • pour Bouaké, c’est toujours l’Auto ARIMA qui l’emporte

Ce qui veut dire qu’un modèle \(SARIMA\) n’est pas adapté aux données en notre possession.

Prévisions et Performance des modèles

Perfromances

Nous mesurons la performances des modèles par les métriques \(MAE\) et \(RMSE\). La métrique \(MAE\) a pour écriture mathématique : \[MAE = \frac{1}{n} \sum_{i = 1}^n |y_i - \hat{y}_i|\]

où :

  • \(y_i =\) valeur observée
  • \(\hat{y}_i =\) valeur prédite
  • \(n =\) nombre de prédictions

La métrique \(RMSE\) a été définie plus haut.

Les résultats sont présentés dans le tableau ci-dessous :

Pour la ville d’Abidjan, les performances des deux modèles sont très proches : l’Auto ARIMA présente un RMSE légèrement inférieur (487,6 contre 487,9) tandis que l’ARIMA classique obtient un MAE plus faible (425,2 contre 450), ce qui signifie qu’aucun des deux ne domine nettement. En revanche, pour Bouaké, l’Auto ARIMA surpasse largement l’ARIMA, avec un RMSE de 64 contre 182,3 et un MAE de 27,3 contre 172,1.

L’analyse des résidus pour Abidjan

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(1,1,0)
## Q* = 2.686, df = 17, p-value = 1
## 
## Model df: 1.   Total lags used: 18

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(1,1,1)
## Q* = 12.334, df = 15, p-value = 0.6536
## 
## Model df: 2.   Total lags used: 17
L’analyse des résidus pour Bouaké

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(0,1,0)
## Q* = 16.929, df = 17, p-value = 0.4592
## 
## Model df: 0.   Total lags used: 17

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(1,1,1)
## Q* = 1.8014, df = 16, p-value = 1
## 
## Model df: 2.   Total lags used: 18

L’analyse des performances montre que le modèle pour Bouaké surpasse celui d’Abidjan. Les indicateurs d’erreur, comme la MAE et le RMSE, sont plus faibles à Bouaké. L’examen des résidus révèle également que le modèle ARIMA de Bouaké produit des erreurs plus stables et aléatoires, sans autocorrélation notable, tandis que celui d’Abidjan présente quelques pics isolés.

Prévisions

Auto ARIMA
  • Pour Abidjan
##                       ME      RMSE       MAE         MPE      MAPE      MASE
## Training set    6.145773  87.73877  40.97439  -0.8702391  8.038923 0.1467739
## Test set     -122.727273 487.57284 450.00000 -74.3668831 98.003247 1.6119403
##                    ACF1 Theil's U
## Training set 0.01304828        NA
## Test set     0.90784668  6.591304

  • Pour Bouaké
##                     ME     RMSE      MAE       MPE     MAPE       MASE
## Training set  1.169767 87.18801 20.35581 -1.169934 4.062625 0.07343211
## Test set     27.272727 63.96021 27.27273  3.208556 3.208556 0.09838437
##                    ACF1 Theil's U
## Training set -0.1378731        NA
## Test set      0.7398990  1.742011

ARIMA
  • Pour Abidjan
##                      ME     RMSE       MAE       MPE      MAPE       MASE
## Training set   2.424536  85.0449  27.52688  -1.55080  5.374678 0.09930123
## Test set     138.901507 487.8517 425.21826 -23.21913 65.963740 1.53394385
##                     ACF1 Theil's U
## Training set -0.03681861        NA
## Test set      0.89250945  3.960433

  • Pour Bouaké
##                       ME     RMSE       MAE         MPE      MAPE      MASE
## Training set    5.592636  87.4110  40.11167  -0.8007292  7.813861 0.1436836
## Test set     -172.089808 182.2564 172.08981 -24.3218200 24.321820 0.6164411
##                    ACF1 Theil's U
## Training set -0.0280278        NA
## Test set      0.7370362  5.250963

Décomposition multiplicative
  • Pour Abidjan
##                          Model     RMSE      MAE
## 1 Decomposition Multiplicative 662.2691 548.7134

  • Pour Bouaké